package org.langqiao.string;

public class InternTest {

	/**
	 * String的intern()方法就是扩充常量池的一个 方法；
	 * 当一个String实例str调用intern()方法时，Java查找常量池中是否有相同Unicode的字符串常量，
	 * 如果有，则返回其的引用， 如果没有，则在常量池中增加一个Unicode等于str的字符串并返回它的引用
	 * @param args
	 */
	public static void main(String[] args) {
		/*String hello = "hello";
		String lo = "lo";
		System.out.println(hello == ("hel" + "lo"));
		System.out.println(hello == ("hel" + lo));
		System.out.println(hello == ("hel" + lo).intern());
		System.out.println("测试方法testStr:");
		testStr( );*/
		testStr( );
		Object obj = "123";
		String str = (String)obj;
		System.out.println(str);
	}

	public static void testStr(){
		String str1 = "和谐";
		String str2 = "社会";
		String str3 = "和谐社会";
		String str4;
		str4 = str1 + str2;
		System.out.println(str3 == str4);
		str4 = (str1 + str2).intern( );
		System.out.println(str3 == str4);
	}
}
